package org.jsola.hr.dto.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Length;
import org.jsola.core.dto.BaseDTO;

import static org.jsola.hr.example.GysInfoExample.E_ADDRESS;
import static org.jsola.hr.example.GysInfoExample.E_BUSINESS_LICENSE_URL;
import static org.jsola.hr.example.GysInfoExample.E_CONTACT_EMAIL;
import static org.jsola.hr.example.GysInfoExample.E_CONTACT_NAME;
import static org.jsola.hr.example.GysInfoExample.E_CONTACT_PHONE;
import static org.jsola.hr.example.GysInfoExample.E_CONTACT_SEX;
import static org.jsola.hr.example.GysInfoExample.E_CONTACT_WX;
import static org.jsola.hr.example.GysInfoExample.E_CONTENT;
import static org.jsola.hr.example.GysInfoExample.E_CONTRACT_LIFE;
import static org.jsola.hr.example.GysInfoExample.E_CONTRACT_URL;
import static org.jsola.hr.example.GysInfoExample.E_CORPORATE_EMAIL;
import static org.jsola.hr.example.GysInfoExample.E_CORPORATE_NAME;
import static org.jsola.hr.example.GysInfoExample.E_CORPORATE_PHONE;
import static org.jsola.hr.example.GysInfoExample.E_CORPORATE_SEX;
import static org.jsola.hr.example.GysInfoExample.E_CORPORATE_WX;
import static org.jsola.hr.example.GysInfoExample.E_GROUP_ID;
import static org.jsola.hr.example.GysInfoExample.E_GYS_NAME;
import static org.jsola.hr.example.GysInfoExample.E_OTHER_FILE_URL;
import static org.jsola.hr.example.GysInfoExample.E_REMARK;
import static org.jsola.hr.example.GysInfoExample.M_ADDRESS_MAX;
import static org.jsola.hr.example.GysInfoExample.M_BUSINESS_LICENSE_URL_MAX;
import static org.jsola.hr.example.GysInfoExample.M_CONTACT_EMAIL_MAX;
import static org.jsola.hr.example.GysInfoExample.M_CONTACT_NAME_MAX;
import static org.jsola.hr.example.GysInfoExample.M_CONTACT_PHONE_MAX;
import static org.jsola.hr.example.GysInfoExample.M_CONTACT_SEX_MAX;
import static org.jsola.hr.example.GysInfoExample.M_CONTACT_WX_MAX;
import static org.jsola.hr.example.GysInfoExample.M_CONTENT_MAX;
import static org.jsola.hr.example.GysInfoExample.M_CONTRACT_LIFE_MAX;
import static org.jsola.hr.example.GysInfoExample.M_CONTRACT_URL_MAX;
import static org.jsola.hr.example.GysInfoExample.M_CORPORATE_EMAIL_MAX;
import static org.jsola.hr.example.GysInfoExample.M_CORPORATE_NAME_MAX;
import static org.jsola.hr.example.GysInfoExample.M_CORPORATE_PHONE_MAX;
import static org.jsola.hr.example.GysInfoExample.M_CORPORATE_SEX_MAX;
import static org.jsola.hr.example.GysInfoExample.M_CORPORATE_WX_MAX;
import static org.jsola.hr.example.GysInfoExample.M_GROUP_ID_MAX;
import static org.jsola.hr.example.GysInfoExample.M_GYS_NAME_MAX;
import static org.jsola.hr.example.GysInfoExample.M_OTHER_FILE_URL_MAX;
import static org.jsola.hr.example.GysInfoExample.M_REMARK_MAX;
import static org.jsola.hr.example.GysInfoExample.N_ADDRESS;
import static org.jsola.hr.example.GysInfoExample.N_BUSINESS_LICENSE_URL;
import static org.jsola.hr.example.GysInfoExample.N_CONTACT_EMAIL;
import static org.jsola.hr.example.GysInfoExample.N_CONTACT_NAME;
import static org.jsola.hr.example.GysInfoExample.N_CONTACT_PHONE;
import static org.jsola.hr.example.GysInfoExample.N_CONTACT_SEX;
import static org.jsola.hr.example.GysInfoExample.N_CONTACT_WX;
import static org.jsola.hr.example.GysInfoExample.N_CONTENT;
import static org.jsola.hr.example.GysInfoExample.N_CONTRACT_LIFE;
import static org.jsola.hr.example.GysInfoExample.N_CONTRACT_URL;
import static org.jsola.hr.example.GysInfoExample.N_CORPORATE_EMAIL;
import static org.jsola.hr.example.GysInfoExample.N_CORPORATE_NAME;
import static org.jsola.hr.example.GysInfoExample.N_CORPORATE_PHONE;
import static org.jsola.hr.example.GysInfoExample.N_CORPORATE_SEX;
import static org.jsola.hr.example.GysInfoExample.N_CORPORATE_WX;
import static org.jsola.hr.example.GysInfoExample.N_GROUP_ID;
import static org.jsola.hr.example.GysInfoExample.N_GYS_NAME;
import static org.jsola.hr.example.GysInfoExample.N_OTHER_FILE_URL;
import static org.jsola.hr.example.GysInfoExample.N_REMARK;

/**
 *【供应商信息表】excel导入对象
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ApiModel(description = "【供应商信息表】excel导入对象")
public class GysInfoImportDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(notes = N_GROUP_ID, example = E_GROUP_ID)
    @Length(max = 50, message = M_GROUP_ID_MAX)
    @ExcelProperty(value = N_GROUP_ID)
    private String groupId;

    @ApiModelProperty(notes = N_GYS_NAME, example = E_GYS_NAME)
    @Length(max = 255, message = M_GYS_NAME_MAX)
    @ExcelProperty(value = N_GYS_NAME)
    private String gysName;

    @ApiModelProperty(notes = N_CONTENT, example = E_CONTENT)
    @ExcelProperty(value = N_CONTENT)
    private String content;

    @ApiModelProperty(notes = N_CONTRACT_LIFE, example = E_CONTRACT_LIFE)
    @Length(max = 255, message = M_CONTRACT_LIFE_MAX)
    @ExcelProperty(value = N_CONTRACT_LIFE)
    private String contractLife;

    @ApiModelProperty(notes = N_ADDRESS, example = E_ADDRESS)
    @Length(max = 255, message = M_ADDRESS_MAX)
    @ExcelProperty(value = N_ADDRESS)
    private String address;

    @ApiModelProperty(notes = N_REMARK, example = E_REMARK)
    @Length(max = 255, message = M_REMARK_MAX)
    @ExcelProperty(value = N_REMARK)
    private String remark;

    @ApiModelProperty(notes = N_CONTRACT_URL, example = E_CONTRACT_URL)
    @ExcelProperty(value = N_CONTRACT_URL)
    private String contractUrl;

    @ApiModelProperty(notes = N_BUSINESS_LICENSE_URL, example = E_BUSINESS_LICENSE_URL)
    @ExcelProperty(value = N_BUSINESS_LICENSE_URL)
    private String businessLicenseUrl;

    @ApiModelProperty(notes = N_OTHER_FILE_URL, example = E_OTHER_FILE_URL)
    @ExcelProperty(value = N_OTHER_FILE_URL)
    private String otherFileUrl;

    @ApiModelProperty(notes = N_CONTACT_NAME, example = E_CONTACT_NAME)
    @Length(max = 255, message = M_CONTACT_NAME_MAX)
    @ExcelProperty(value = N_CONTACT_NAME)
    private String contactName;

    @ApiModelProperty(notes = N_CONTACT_SEX, example = E_CONTACT_SEX)
    @Length(max = 255, message = M_CONTACT_SEX_MAX)
    @ExcelProperty(value = N_CONTACT_SEX)
    private String contactSex;

    @ApiModelProperty(notes = N_CONTACT_PHONE, example = E_CONTACT_PHONE)
    @Length(max = 255, message = M_CONTACT_PHONE_MAX)
    @ExcelProperty(value = N_CONTACT_PHONE)
    private String contactPhone;

    @ApiModelProperty(notes = N_CONTACT_EMAIL, example = E_CONTACT_EMAIL)
    @Length(max = 255, message = M_CONTACT_EMAIL_MAX)
    @ExcelProperty(value = N_CONTACT_EMAIL)
    private String contactEmail;

    @ApiModelProperty(notes = N_CONTACT_WX, example = E_CONTACT_WX)
    @Length(max = 255, message = M_CONTACT_WX_MAX)
    @ExcelProperty(value = N_CONTACT_WX)
    private String contactWX;

    @ApiModelProperty(notes = N_CORPORATE_NAME, example = E_CORPORATE_NAME)
    @Length(max = 255, message = M_CORPORATE_NAME_MAX)
    @ExcelProperty(value = N_CORPORATE_NAME)
    private String corporateName;

    @ApiModelProperty(notes = N_CORPORATE_SEX, example = E_CORPORATE_SEX)
    @Length(max = 255, message = M_CORPORATE_SEX_MAX)
    @ExcelProperty(value = N_CORPORATE_SEX)
    private String corporateSex;

    @ApiModelProperty(notes = N_CORPORATE_PHONE, example = E_CORPORATE_PHONE)
    @Length(max = 255, message = M_CORPORATE_PHONE_MAX)
    @ExcelProperty(value = N_CORPORATE_PHONE)
    private String corporatePhone;

    @ApiModelProperty(notes = N_CORPORATE_EMAIL, example = E_CORPORATE_EMAIL)
    @Length(max = 255, message = M_CORPORATE_EMAIL_MAX)
    @ExcelProperty(value = N_CORPORATE_EMAIL)
    private String corporateEmail;

    @ApiModelProperty(notes = N_CORPORATE_WX, example = E_CORPORATE_WX)
    @Length(max = 255, message = M_CORPORATE_WX_MAX)
    @ExcelProperty(value = N_CORPORATE_WX)
    private String corporateWX;

}

